# @Time : 2025-03-26 14:24
# @Author : Fioman 
# @Phone : 13149920693
"""
开始学习pyside6,用这个pydide6 重新构建自己的项目
"""
import random
import sys

from PySide6 import QtWidgets, QtCore
from PySide6.QtCore import Qt


class MyWidget(QtWidgets.QWidget):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)

        self.hello = ["你好世界", "Hallo Welt", "Hei maailma", "Hola Mundo", "Привет мир"]

        # 设置窗口的大小
        self.resize(800, 600)

        # 创建一个按钮控件,其上文字为点击我
        self.button = QtWidgets.QPushButton("点击我")
        # 创建一个标签控件,内容为Hello World,对齐方式为居中
        self.text = QtWidgets.QLabel("Hello World", alignment=Qt.AlignmentFlag.AlignCenter)

        # 创建一个垂直的布局管理器,并且将布局添加到当前窗口,隐式添加,还可以显示添加
        # self.layout = QtWidgets.QVBoxLayout()
        # self.setLayout(self.layout)
        self.layout = QtWidgets.QVBoxLayout(self)

        self.layout.addWidget(self.text)
        self.layout.addWidget(self.button)

        # 将button.clicked这个信号与self.hand_click这个槽函数进行绑定,就是按钮事件处理函数
        self.button.clicked.connect(self.handler_click)

    @QtCore.Slot()
    def handler_click(self) -> None:
        """
        按钮点击事件处理函数
        :param self:
        :return:
        """
        self.text.setText(random.choice(self.hello))


if __name__ == '__main__':
    # 创建App,将运行脚本时(可能的)的其他参数传给QT以初始化
    app = QtWidgets.QApplication(sys.argv)
    # 创建一个窗口
    widget = MyWidget()
    widget.show()
    # 正常退出APP: app.exec() 关闭app,sys.exit() 退出程序(进程)
    res = app.exec()
    print("程序退出: app.exec(): 返回值:", res)
    sys.exit(res)
